package com.redepronik.medisys.cithis.entity;

import java.io.Serializable;
import javax.persistence.*;
import java.util.Date;
import java.util.List;


/**
 * The persistent class for the pacientes database table.
 * 
 */
@Entity
@Table(name="pacientes")
@NamedQuery(name="Paciente.findAll", query="SELECT p FROM Paciente p")
public class Paciente implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@SequenceGenerator(name="PACIENTES_PACIENTEID_GENERATOR" )
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="PACIENTES_PACIENTEID_GENERATOR")
	@Column(unique=true, nullable=false)
	private Long pacienteid;

	@Column(nullable=false, length=10)
	private String cedula;

	@Column(length=100)
	private String direccion;

	@Column(nullable=false)
	private Boolean fallecido;

	@Temporal(TemporalType.DATE)
	@Column(nullable=false)
	private Date fechanacimiento;

	private Integer foto;

	@Column(nullable=false, length=50)
	private String nombre;

	//bi-directional many-to-one association to Antecedenteadiccione
	@OneToMany(mappedBy="paciente")
	private List<AntecedenteAdiccion> antecedenteadicciones;

	//bi-directional many-to-one association to Antecedentealergia
	@OneToMany(mappedBy="paciente")
	private List<AntecedenteAlergia> antecedentealergias;

	//bi-directional many-to-one association to Antecedentecirugia
	@OneToMany(mappedBy="paciente")
	private List<AntecedenteCirugia> antecedentecirugias;

	//bi-directional many-to-one association to Antecedenteenfermedade
	@OneToMany(mappedBy="paciente")
	private List<AntecedenteEnfermedad> antecedenteenfermedades;

	//bi-directional many-to-one association to Cita
	@OneToMany(mappedBy="paciente")
	private List<Cita> citas;

	//bi-directional many-to-one association to Emailpaciente
	@OneToMany(mappedBy="paciente")
	private List<EmailPaciente> emailpacientes;

	//bi-directional many-to-one association to Afiliado
	@ManyToOne
	@JoinColumn(name="afiliadoid", nullable=false)
	private Afiliado afiliado;

	//bi-directional many-to-one association to Estadocivil
	@ManyToOne
	@JoinColumn(name="estadocivilid", nullable=false)
	private EstadoCivil estadocivil;

	//bi-directional many-to-one association to Gruposanguineo
	@ManyToOne
	@JoinColumn(name="gruposanguineoid", nullable=false)
	private GrupoSanguineo gruposanguineo;

	//bi-directional many-to-one association to Lugare
	@ManyToOne
	@JoinColumn(name="lugarid", nullable=false)
	private Lugar lugare;

	//bi-directional many-to-one association to Ocupacione
	@ManyToOne
	@JoinColumn(name="ocupacionid", nullable=false)
	private Ocupacion ocupacione;

	//bi-directional many-to-one association to Sexo
	@ManyToOne
	@JoinColumn(name="sexoid", nullable=false)
	private Sexo sexo;

	//bi-directional many-to-one association to Titulo
	@ManyToOne
	@JoinColumn(name="tituloid", nullable=false)
	private Titulo titulo;

	//bi-directional many-to-one association to Pacienteturno
	@OneToMany(mappedBy="paciente")
	private List<PacienteTurno> pacienteturnos;

	//bi-directional many-to-one association to Responsablepaciente
	@OneToMany(mappedBy="paciente")
	private List<ResponsablePaciente> responsablepacientes;

	//bi-directional many-to-one association to Telefonopaciente
	@OneToMany(mappedBy="paciente")
	private List<TelefonoPaciente> telefonopacientes;

	public Paciente() {
	}

	public Long getPacienteid() {
		return this.pacienteid;
	}

	public void setPacienteid(Long pacienteid) {
		this.pacienteid = pacienteid;
	}

	public String getCedula() {
		return this.cedula;
	}

	public void setCedula(String cedula) {
		this.cedula = cedula;
	}

	public String getDireccion() {
		return this.direccion;
	}

	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}

	public Boolean getFallecido() {
		return this.fallecido;
	}

	public void setFallecido(Boolean fallecido) {
		this.fallecido = fallecido;
	}

	public Date getFechanacimiento() {
		return this.fechanacimiento;
	}

	public void setFechanacimiento(Date fechanacimiento) {
		this.fechanacimiento = fechanacimiento;
	}

	public Integer getFoto() {
		return this.foto;
	}

	public void setFoto(Integer foto) {
		this.foto = foto;
	}

	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public List<AntecedenteAdiccion> getAntecedenteadicciones() {
		return this.antecedenteadicciones;
	}

	public void setAntecedenteadicciones(List<AntecedenteAdiccion> antecedenteadicciones) {
		this.antecedenteadicciones = antecedenteadicciones;
	}

	public AntecedenteAdiccion addAntecedenteadiccione(AntecedenteAdiccion antecedenteadiccione) {
		getAntecedenteadicciones().add(antecedenteadiccione);
		antecedenteadiccione.setPaciente(this);

		return antecedenteadiccione;
	}

	public AntecedenteAdiccion removeAntecedenteadiccione(AntecedenteAdiccion antecedenteadiccione) {
		getAntecedenteadicciones().remove(antecedenteadiccione);
		antecedenteadiccione.setPaciente(null);

		return antecedenteadiccione;
	}

	public List<AntecedenteAlergia> getAntecedentealergias() {
		return this.antecedentealergias;
	}

	public void setAntecedentealergias(List<AntecedenteAlergia> antecedentealergias) {
		this.antecedentealergias = antecedentealergias;
	}

	public AntecedenteAlergia addAntecedentealergia(AntecedenteAlergia antecedentealergia) {
		getAntecedentealergias().add(antecedentealergia);
		antecedentealergia.setPaciente(this);

		return antecedentealergia;
	}

	public AntecedenteAlergia removeAntecedentealergia(AntecedenteAlergia antecedentealergia) {
		getAntecedentealergias().remove(antecedentealergia);
		antecedentealergia.setPaciente(null);

		return antecedentealergia;
	}

	public List<AntecedenteCirugia> getAntecedentecirugias() {
		return this.antecedentecirugias;
	}

	public void setAntecedentecirugias(List<AntecedenteCirugia> antecedentecirugias) {
		this.antecedentecirugias = antecedentecirugias;
	}

	public AntecedenteCirugia addAntecedentecirugia(AntecedenteCirugia antecedentecirugia) {
		getAntecedentecirugias().add(antecedentecirugia);
		antecedentecirugia.setPaciente(this);

		return antecedentecirugia;
	}

	public AntecedenteCirugia removeAntecedentecirugia(AntecedenteCirugia antecedentecirugia) {
		getAntecedentecirugias().remove(antecedentecirugia);
		antecedentecirugia.setPaciente(null);

		return antecedentecirugia;
	}

	public List<AntecedenteEnfermedad> getAntecedenteenfermedades() {
		return this.antecedenteenfermedades;
	}

	public void setAntecedenteenfermedades(List<AntecedenteEnfermedad> antecedenteenfermedades) {
		this.antecedenteenfermedades = antecedenteenfermedades;
	}

	public AntecedenteEnfermedad addAntecedenteenfermedade(AntecedenteEnfermedad antecedenteenfermedade) {
		getAntecedenteenfermedades().add(antecedenteenfermedade);
		antecedenteenfermedade.setPaciente(this);

		return antecedenteenfermedade;
	}

	public AntecedenteEnfermedad removeAntecedenteenfermedade(AntecedenteEnfermedad antecedenteenfermedade) {
		getAntecedenteenfermedades().remove(antecedenteenfermedade);
		antecedenteenfermedade.setPaciente(null);

		return antecedenteenfermedade;
	}

	public List<Cita> getCitas() {
		return this.citas;
	}

	public void setCitas(List<Cita> citas) {
		this.citas = citas;
	}

	public Cita addCita(Cita cita) {
		getCitas().add(cita);
		cita.setPaciente(this);

		return cita;
	}

	public Cita removeCita(Cita cita) {
		getCitas().remove(cita);
		cita.setPaciente(null);

		return cita;
	}

	public List<EmailPaciente> getEmailpacientes() {
		return this.emailpacientes;
	}

	public void setEmailpacientes(List<EmailPaciente> emailpacientes) {
		this.emailpacientes = emailpacientes;
	}

	public EmailPaciente addEmailpaciente(EmailPaciente emailpaciente) {
		getEmailpacientes().add(emailpaciente);
		emailpaciente.setPaciente(this);

		return emailpaciente;
	}

	public EmailPaciente removeEmailpaciente(EmailPaciente emailpaciente) {
		getEmailpacientes().remove(emailpaciente);
		emailpaciente.setPaciente(null);

		return emailpaciente;
	}

	public Afiliado getAfiliado() {
		return this.afiliado;
	}

	public void setAfiliado(Afiliado afiliado) {
		this.afiliado = afiliado;
	}

	public EstadoCivil getEstadocivil() {
		return this.estadocivil;
	}

	public void setEstadocivil(EstadoCivil estadocivil) {
		this.estadocivil = estadocivil;
	}

	public GrupoSanguineo getGruposanguineo() {
		return this.gruposanguineo;
	}

	public void setGruposanguineo(GrupoSanguineo gruposanguineo) {
		this.gruposanguineo = gruposanguineo;
	}

	public Lugar getLugare() {
		return this.lugare;
	}

	public void setLugare(Lugar lugare) {
		this.lugare = lugare;
	}

	public Ocupacion getOcupacione() {
		return this.ocupacione;
	}

	public void setOcupacione(Ocupacion ocupacione) {
		this.ocupacione = ocupacione;
	}

	public Sexo getSexo() {
		return this.sexo;
	}

	public void setSexo(Sexo sexo) {
		this.sexo = sexo;
	}

	public Titulo getTitulo() {
		return this.titulo;
	}

	public void setTitulo(Titulo titulo) {
		this.titulo = titulo;
	}

	public List<PacienteTurno> getPacienteturnos() {
		return this.pacienteturnos;
	}

	public void setPacienteturnos(List<PacienteTurno> pacienteturnos) {
		this.pacienteturnos = pacienteturnos;
	}

	public PacienteTurno addPacienteturno(PacienteTurno pacienteturno) {
		getPacienteturnos().add(pacienteturno);
		pacienteturno.setPaciente(this);

		return pacienteturno;
	}

	public PacienteTurno removePacienteturno(PacienteTurno pacienteturno) {
		getPacienteturnos().remove(pacienteturno);
		pacienteturno.setPaciente(null);

		return pacienteturno;
	}

	public List<ResponsablePaciente> getResponsablepacientes() {
		return this.responsablepacientes;
	}

	public void setResponsablepacientes(List<ResponsablePaciente> responsablepacientes) {
		this.responsablepacientes = responsablepacientes;
	}

	public ResponsablePaciente addResponsablepaciente(ResponsablePaciente responsablepaciente) {
		getResponsablepacientes().add(responsablepaciente);
		responsablepaciente.setPaciente(this);

		return responsablepaciente;
	}

	public ResponsablePaciente removeResponsablepaciente(ResponsablePaciente responsablepaciente) {
		getResponsablepacientes().remove(responsablepaciente);
		responsablepaciente.setPaciente(null);

		return responsablepaciente;
	}

	public List<TelefonoPaciente> getTelefonopacientes() {
		return this.telefonopacientes;
	}

	public void setTelefonopacientes(List<TelefonoPaciente> telefonopacientes) {
		this.telefonopacientes = telefonopacientes;
	}

	public TelefonoPaciente addTelefonopaciente(TelefonoPaciente telefonopaciente) {
		getTelefonopacientes().add(telefonopaciente);
		telefonopaciente.setPaciente(this);

		return telefonopaciente;
	}

	public TelefonoPaciente removeTelefonopaciente(TelefonoPaciente telefonopaciente) {
		getTelefonopacientes().remove(telefonopaciente);
		telefonopaciente.setPaciente(null);

		return telefonopaciente;
	}

}